﻿using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;

namespace System.Reactive.Concurrency
{
	public sealed class SchedulerOperation
	{
		public SchedulerOperation ConfigureAwait(bool continueOnCapturedContext)
		{
			Contract.Ensures(Contract.Result<SchedulerOperation>() != null, null, "Contract.Result<SchedulerOperation>() != null");
			return null;
		}

		public SchedulerOperationAwaiter GetAwaiter()
		{
			Contract.Ensures(Contract.Result<SchedulerOperationAwaiter>() != null, null, "Contract.Result<SchedulerOperationAwaiter>() != null");
			return null;
		}

		public sealed class SchedulerOperationAwaiter : INotifyCompletion
		{
			public void OnCompleted(Action continuation)
			{
			}
		}
	}
}